package com.linQing.waterWork.exception;

import cn.hutool.http.HttpStatus;

/**
 * 业务状态码枚举类型
 *
 * @version 0.0.1
 */
public enum ServiceCode {
/*
    *//**
     * 成功
     *//*
    OK(20000),
    *//**
     * 错误：请求参数格式有误
     *//*
    ERROR_BAD_REQUEST(40000),
    *//**
     * 错误：数据不存在
     *//*
    ERROR_NOT_FOUND(40400),
    *//**
     * 错误：数据冲突
     *//*
    ERROR_CONFLICT(40900),
    *//**
     * 错误：未通过认证，或未找到认证信息
     *//*
    ERROR_UNAUTHORIZED(40100),
    *//**
     * 错误：未通过认证，因为账号被禁用
     *//*
    ERROR_UNAUTHORIZED_DISABLED(40101),
    *//**
     * 错误：禁止访问，无此操作权限
     *//*
    ERROR_FORBIDDEN(40300),
    *//**
     * 错误：插入数据错误
     *//*
    ERROR_INSERT(50000),
    *//**
     * 错误：删除数据错误
     *//*
    ERROR_DELETE(50100),
    *//**
     * 错误：修改数据错误
     *//*
    ERROR_UPDATE(50200),
    *//**
     * 错误：JWT已过期
     *//*
    ERROR_JWT_EXPIRED(60000),
    *//**
     * 错误：JWT格式错误
     *//*
    ERROR_JWT_MALFORMED(60100),
    *//**
     * 错误：JWT验证签名失败
     *//*
    ERROR_JWT_SIGNATURE(60200),
    *//**
     * 错误：未知错误
     *//*
    ERROR_UNKNOWN(99999);

    private Integer value;

    ServiceCode(Integer value) {
        this.value = value;
    }

    public Integer getValue() {
        return value;
    }*/

    /**
     * 请求成功
     */
    OK(HttpStatus.HTTP_OK, "请求成功"),

    /**
     * 请求参数错误
     */
    PARAMS_ERROR(HttpStatus.HTTP_PERMANENT_REDIRECT/*, "请求参数错误"*/),


    INTERNAL_ERROR(HttpStatus.HTTP_INTERNAL_ERROR /*,"访问资源不存在"*/),
    HTTP_FORBIDDEN(HttpStatus.HTTP_FORBIDDEN),

    /**
     * 时间日期处于不允许的区间
     */
    TIME_PARAMS_ERROR(HttpStatus.HTTP_PERMANENT_REDIRECT/*, "时间日期处于不允许的区间"*/),

    /**
     * 未登录
     */
    NOT_LOGIN_ERROR(HttpStatus.HTTP_UNAUTHORIZED/*, "未登录"*/),

    /**
     * 无权限
     */
    NO_AUTH_ERROR(HttpStatus.HTTP_PROXY_AUTH/*, "无权限"*/),

    /**
     * 请求数据不存在
     */
    NOT_FOUND_ERROR(HttpStatus.HTTP_NOT_FOUND/*, "请求数据不存在"*/),

    /**
     * 禁止访问
     */
    FORBIDDEN_ERROR(HttpStatus.HTTP_FORBIDDEN/*, "禁止访问"*/),

    /**
     * 系统内部异常
     */
    SYSTEM_ERROR(HttpStatus.HTTP_INTERNAL_ERROR/*, "系统内部异常"*/),

    /**
     * 操作失败
     */
    OPERATION_ERROR(HttpStatus.HTTP_NOT_IMPLEMENTED/*, "操作失败"*/);



    /**
     * 状态码
     */
    private final int code;

    /**
     * 信息
     */
    private String message;


    ServiceCode(int code, String message) {
        this.code = code;
        this.message = message;
    }

    ServiceCode(int code) {
        this.code = code;
    }


    /**
     * 获取状态码
     *
     * @return 状态码
     */
    public int getCode() {
        return code;
    }

    /**
     * 获取返回信息
     *
     * @return 返回信息
     */
    public String getMessage() {
        return message;
    }

}
